package com.jzo2o.customer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.domain.CertificationAudit;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditAddReqDTO;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO;
import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditAddReqDTO;
import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditPageQueryReqDTO;
import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO;
import com.jzo2o.customer.model.dto.response.RejectReasonResDTO;
import com.jzo2o.customer.model.dto.response.WorkerCertificationAuditResDTO;

/**
 * <p>
 * 服务人员/机构认证流水表 服务类
 * </p>
 *
 * @author JIAN
 * @since 2024-08-30
 */
public interface ICertificationAuditService extends IService<CertificationAudit> {
    /**
     * 服务端提交认证信息
     */
    void addCertificationInfoForWorker(WorkerCertificationAuditAddReqDTO workerCertificationAuditAddReqDTO);

    /**
     * 机构端提交认证信息
     */
    void addCertificationInfoForAgency(AgencyCertificationAuditAddReqDTO agencyCertificationAuditAddReqDTO);

    /**
     * 获取当前用户最新的拒绝原因
     */
    RejectReasonResDTO getLatestRejectReason();

    /**
     * 获取服务端认证信息
     */
    PageResult<WorkerCertificationAuditResDTO> getWorkerCertificationInfo(WorkerCertificationAuditPageQueryReqDTO pageQueryReqDTO);

    /**
     * 获取机构端认证消息
     */
    PageResult<AgencyCertificationAuditResDTO> getAgencyCertificationInfo(AgencyCertificationAuditPageQueryReqDTO pageQueryReqDTO);

    /**
     * 审核认证是否通过
     */
    void audit(Long id, Integer certificationStatus, String rejectReason);
}